a {
	display: inline-block;
	height: 50px;
	line-height: 50px;
	text-decoration: none;
	border: 1px solid black;
	padding: 0 3em;
	color: black;
	border-radius: 2px;
	font-weight: bold;
	position: relative;
	transition: .3s;
}

a::before {
	content: '';
	display: block;
	width: 0%;
	height: calc(100% + 2px);
	background-color: black;
	position: absolute;
	top: -1px;
	left: 0;
	border-radius: 2px;
	z-index: -1;
	transition: .3s;
}

a:hover {
	color: #fff;
}

a:hover::before {
	width: 100%;
}